#ifndef __BALLADE_SSL_CONTEXT_H__
#define __BALLADE_SSL_CONTEXT_H__

#pragma once

#include <openssl/ssl.h>

#include <ballade/network/config.h>

namespace Ballade
{
	namespace Network
	{
		
		class NETWORK_API SSLContext
		{
		public:
			
			enum Method {TLSv1, TLSv2, TLSv3, TLSv23};
			
			SSLContext(Method method);
			~SSLContext();
			SSL_CTX* getContext();
			
		private:
			SSL_CTX* _sslCtx;
			
			void initialize(Method method);
		};

	}
}
#endif